package com.c6906.vdam.dps.service;

import com.c6906.vdam.dps.entity.TerminalBusinessInfo;
import com.c6906.vdam.dps.entity.TerminalData;
import com.c6906.vdam.dps.entity.VehiclesLast;

import java.util.List;

/**
 * @Author : TAOHUIQI
 * @Date: 2024/6/15 20:50
 * @Description:
 */
public interface TerminalBusinessInfoService {

    /**
     * 初始化达梦数据的设备信息到redis
     * @return
     */
     String initRedis();

    /**
     * 初始化达梦数据的设备到IotDB中创建Device
     * @return
     */
    String initIotDB();

    /**
     * 初始化达梦数据的设备到Redis
     * @return
     */
    String initRedisForList(List<String> sn);

    /**
     * 查询达梦数据库终端最新轨迹信息List
     * @return
     */
    List<VehiclesLast> getVehiclesLastMapInfoList(int pageSize, int pageNum);

    /**
     * 根据设备编号从达梦获取单个设备信息并且缓存到redis
     * @return
     */
    List<TerminalBusinessInfo> queryTerminalBusinessBySNToRedis(String sn);

    /**
     * 根据设备编号从redis获取单个设备基本信息
     * @return
     */
    TerminalBusinessInfo getTerminalBySNFromRedis(String sn);

    /**
     * 根据设备编号判断redis中是否存在该设备信息
     * @return
     */
    boolean terminalIsExistFormRedis(String sn);

    /***
     * 创建设备模板并且激活绑定数据库路径
     */
    String createDeviceTemplate();

    boolean updateBatchByTerminalSn(List<TerminalData> list);

    /**
     * 批量更新redis中的终端状态数据到DM数据库
     * @return list
     */
    boolean updateBatchTerminalDataToDM();

    /**
     * 保存终端状态数据到redis
     */
    void saveTerminalDataToRedis(List<TerminalData> list);

}
